Fix a crash introduced in the previous commit
authorMatthias Clasen <mclasen@redhat.com>
Tue, 19 Dec 2017 19:17:55 +0000 (14:17 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 19 Dec 2017 19:17:55 +0000 (14:17 -0500)
The signatures of row-inserted and row-deleted are not
identical, so we need to be a bit more careful here.

gtk/gtkfontchooserwidget.c
gtk/ui/gtkfontchooserwidget.ui

index b8ee15f60267dbcfb27aeccf50d4e67db4ca201b..5e5d582cfb1378116e757cb477c45d39da10002b 100644 (file)
@@ -547,14 +547,11 @@ gtk_font_chooser_widget_update_preview_attributes (GtkFontChooserWidget *fontcho
 }
 
 static void
-rows_changed_cb (GtkTreeModel *model,
-                 GtkTreePath  *path,
-                 gpointer      user_data)
+rows_changed_cb (GtkFontChooserWidget *fontchooser)
 {
-  GtkFontChooserWidget *fontchooser = user_data;
   GtkFontChooserWidgetPrivate *priv = fontchooser->priv;
 
-  if (gtk_tree_model_iter_n_children (model, NULL) == 0)
+  if (gtk_tree_model_iter_n_children (priv->filter_model, NULL) == 0)
     gtk_stack_set_visible_child_name (GTK_STACK (priv->list_stack), "empty");
   else
     gtk_stack_set_visible_child_name (GTK_STACK (priv->list_stack), "list");
@@ -815,7 +812,7 @@ gtk_font_chooser_widget_load_fonts (GtkFontChooserWidget *fontchooser,
 
   g_free (families);
 
-  rows_changed_cb (priv->filter_model, NULL, fontchooser);
+  rows_changed_cb (fontchooser);
 
   g_signal_handlers_unblock_by_func (priv->filter_model, rows_changed_cb, fontchooser);
   g_signal_handlers_unblock_by_func (priv->family_face_list, cursor_changed_cb, fontchooser);
index 8a3bf50e5754f0e31cfcbd5b33c6ba70773284c4..93eefd1af7ad3c4d6169e2b77dbde1d59558900a 100644 (file)
@@ -15,8 +15,8 @@
   </object>
   <object class="GtkTreeModelFilter" id="filter_model">
     <property name="child-model">model</property>
-    <signal name="row-deleted" handler="rows_changed_cb" swapped="no"/>
-    <signal name="row-inserted" handler="rows_changed_cb" swapped="no"/>
+    <signal name="row-deleted" handler="rows_changed_cb" swapped="yes"/>
+    <signal name="row-inserted" handler="rows_changed_cb" swapped="yes"/>
   </object>
   <object class="GtkAdjustment" id="slider_adjustment">
     <property name="upper">100</property>